package org.alps.pattern.factory.simplefactory;

import lombok.extern.slf4j.Slf4j;
import org.alps.pattern.factory.ICourse;
import org.alps.pattern.factory.JavaCourse;

/**
 * 简单工厂： 农耕社会小作坊
 * * 适用场景：1.工厂类负责创建的对象较少
 * *         2.客户端只需要传入工厂类的参数，对于如何创建对象的逻辑不需要关心。
 * * 优点：只需要传入一个正确的参数，就可以获取到所需要的对象，无需知道对象创建细节
 * * 缺点：1.工厂类的职责过重，增加新的产品时需要修改工厂类的判断逻辑，违背开闭原则。
 * *      2.不易于扩展过于复杂的产品结构。
 * @date 2021-04-26
 * @author zkw
 */
@Slf4j
public class SimpleFactoryTest {
    public static void main(String[] args) {
        CourseFactory factory = new CourseFactory();

        //ICourse course = new JavaCourse();
        //ICourse course = factory.create("java");
        ICourse course = factory.create(JavaCourse.class);

        course.record();

        //LoggerFactory.getLogger()
    }
}
